package LinkedListType.JosephRing;

import java.util.Scanner;
/**
 据说著名犹太历史学家Josephus有过以下的故事：在罗马人占领乔塔帕特后，
 39 个犹太人与Josephus及他的朋友躲到一个洞中，39个犹太人决定宁愿死也不要被敌人抓到，
 于是决定了一个自杀方式，41个人排成一个圆圈，由第1个人开始报数，每报数到第3人该人就必须自杀，然
 后再由下一个重新报数，直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从。
 首先从一个人开始，越过k-2个人（因为第一个人已经被越过），并杀掉第k个人。接着，再越过k-1个人，并杀掉第k个人。
 这个过程沿着圆圈一直进行，直到最终只剩下一个人留下，这个人就可以继续活着。
 问题是，给定了和，一开始要站在什么地方才能避免被处决。
 Josephus要他的朋友先假装遵从，他将朋友与自己安排在第16个与第31个位置，于是逃过了这场死亡游戏。
 * */
public class ArraySolution {
    public static void main(String[] args) {
        String[] input = new Scanner(System.in).nextLine().split(" ");
        //表示当前总共n个人，数到数字m时出局
        int n = Integer.parseInt(input[0]);
        int m = Integer.parseInt(input[1]);
        int cnt = 0, i = 0, k = 0; //cnt表示目前出局的人数，i表示数组下标，k表示报数的下标
        int[] a = new int[110];
        while (cnt != n) {
            if (i >= n) i = 0; //数据下标越界，则从0重新开始
            if (a[i] == 0) { //跳过已出局的人进行报数
                k++;
                if (k == m) {
                    a[i] = 1; //表示下标i的人已出局
                    cnt++;
                    System.out.print(i + "\t");
                    k = 0; //重新从1开始报数
                }
            }
            i++;
        }
    }
}
